/*
 * control_center.hpp
 *
 *  Created on: Mar 31, 2010
 *      Author: root
 */

#ifndef CONTROL_CENTER_HPP_
#define CONTROL_CENTER_HPP_
#include "CCS_include.hpp"

struct t_keyboard
{
	c_keyboard * pkeyboard;
   struct list_head list;
};


class control_center
{

private:
struct list_head keyboard_list;                       //keyboard is class
struct list_head camera_list;
struct list_head monitor_list;
struct list_head matrix_list;
struct list_head camerar_control_list;
struct list_head camerar_control_exchange_list;
struct list_head osd_list;
struct list_head osd_show_list;
struct list_head commport_list;
struct list_head gateway_list;
struct list_head scan_list;
struct list_head macro_list;
struct list_head macro_command_list;
struct list_head user_list;
struct list_head usergroup_list;
struct list_head groupaccess_list;
bool read_config_xml(void);    //read from config.xl
public:
control_center();
~control_center();
cmd_exec_over_code camera_ptz_switch(u32 userid,camera_control_switch_cmd command,u32 monitor,u32 camera,u32 parameter);  //switch a camera or ptz a camera
cmd_exec_over_code switch_matrix_two(u32 userid,u32 monitor,u32 camera,t_matrix_input *matrix_input,t_matrix_output *matrix_output);
cmd_exec_over_code switch_camera(t_matrix_input *matrix_input,t_matrix_output *matrix_output);
cmd_exec_over_code switch_camera(t_matrix_input *matrix_input,t_matrix_output *matrix_output_trun,t_matrix_input *matrix_input_trun,t_matrix_output *matrix_output);
u32 getusergrouplevel(u32 userid);
cmd_exec_over_code camera_ptz_do(u32 userid,camera_control_switch_cmd command,u32 monitor,u32 camera,u32 parameter);//ptz only.
};

unsigned char system_config(void);

#endif /* CONTROL_CENTER_HPP_ */
